home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The PC-SIG Library 10
/
The PC-Sig Library - Shareware for the IBM PC and Compatibles (PC-SIG)(Tenth Edition Disks 1-2804)(1991).iso
/
PC_SIGCD
/
20
/
9
/
DISK2092.ZIP
/
RFIX0227.ZIP
/
BULLET6
next >
Wrap
Text File
|
1990-02-28
|
37KB
|
914 lines
======[ Fixed Test Version - Changes to RBBS-PC 17.3 ]========
Last Mod: KG022702
Note: BASE is the release of 17.3.
Fixes are released as RFIX0227.ZIP.
This is the chronological, detailed documentation of the changes
made to 17.3, for fixing problems with 17.3.
Sysops: 17.3 now correctly supports macros in the Fast File
Search, for both online and offline files. This allows efficient
implementation of many new features.
See the two enhanced utilities CMPBBS10.ZIP and
MFIDX11.ZIP for details. You can move your files off lines
and you can also list files on other BBS's.
CONVENTIONS:
The changes are assigned numbers that correspond to the
month, day, and order in which they were made. Any mods
are dated following the modification description. The
lines of source code that are changed/modified/added are
designated by the comment beginning in column 70 of "' iiMMDD#"
where ii is the initials of the person providing the change.
-------------------------------------------------------------------
RBBS-PC.EXE 02-11-90 7:00 PM EST Release of CPC17.3
--------------------------------------------------------------------
Summary
EXE MOD Short Description
---- -------- -----------------
RBBS KG022702 Untrapped errors in LIT version with MIMPORT OFF
RBBS KG022701 Stacked commands sometimes not working properly
RBBS RH022501 Autodownload sometimes not reporting name properly
RBBS KG022301 Add support for macro processing for online files
RBBS KG022205 File name reported wiped out by macro processing
RBBS KG022204 Add ability to vary FFS macro processing
RBBS KG022203 Colors graphics door menu MENU05C bleeds on the right
RBBS KG022202 Up and downloads in distributed RBBS-PC.DEF may not work
RBBS KG022201 Jump no longer an option when V)iew in dir listing
RBBS KG022103 LIT merges not assigning new user security right
RBBS KG022102 LIT merges give compile error if SURVEY is OFF
RBBS KG022101 Not correctly tracking bytes downloaded when dooring
RBBS KG022001 Autodownload not working when extension not specified
RBBS KG021803 Macro assign sometimes picks up wrong value
RBBS KG021802 Macros in Fast File Search executed too frequently
RBBS KG021801 Internal code documentation missing some cases
RBBS KG021502 Logon into a conference can pick up a macro
RBBS KG021501 Prompt after end of macro is repeated twice
RBBS RH021501 Autodownload not working
Contributors include:
KG - Ken Goosens
RH - Ray Horton
------------------------[ KG022702 ]-------------------------
Problem: When using LIT version with message import off
(MIMPORT OFF), get untrapped errors when message margin of
user set lower than that used by the message.
Solution: Use new MIMPORT.LIT.
------------------------[ KG022701 ]-------------------------
Problem: Command stacking not always working right in msg
read. E.g. "j xxx r test" will look for messages with text "r".
Solution: Change RBBS-PC.BAS as follows:
4330 QuickScanMsgs = ZFalse
ReadMsgs = ZTrue
HiLiteRec = -1
ScanMsgs = ZFalse
MsgStart = 6
MsgEnd = 100
IF ZLocalUserMode OR NOT ZLocalUser THEN _
IF ReadMsgIn$ <> ZActiveMessageFile$ THEN _
ReadMsgIn$ = ZActiveMessageFile$ : _
CALL UpdtCalr ("Read Messages in " + ReadMsgIn$,1)
GOSUB 1300
GOTO 4350 ' KG022701
4360 ZWasLG$(11) = ZWasZ$
NumMsgsSelected = ZLastIndex
MsgIndex = ZAnsIndex ' KG022701
ZLastIndex = 0
ToRequested = ZFalse
FromRequested = ZFalse
IF ZPageLength < 1 THEN _
ZNonStop = ZTrue
4370 MsgIndex = MsgIndex + 1 ' KG022701
4371 IF MsgIndex <= NumMsgsSelected THEN _ ' KG022701
IF LEN(ZUserIn$(ZAnsIndex)) = 1 AND _
INSTR("Cc",ZUserIn$(MsgIndex)) > 0 THEN _ ' KG022701
GOTO 4370 _
ELSE _
CALL CheckInt (ZUserIn$(MsgIndex)) : _ ' KG022701
IF ZErrCode <> 0 THEN _
ZWasEL = 4371 : _
GOTO 13000 _
ELSE CurMsg = ZTestedIntValue : _
ZAnsIndex = MsgIndex : _ ' KG022701
GOTO 4415
4400 GOSUB 12932 ' KG022701
IF ZWasQ = 0 THEN _
RETURN
4402 IF LEN(ZUserIn$(ZAnsIndex)) = 1 THEN _ ' KG022701
IF INSTR("Qq",ZUserIn$) THEN _
RETURN _
ELSE IF INSTR("Hh",LEFT$(ZUserIn$(ZAnsIndex),1)) THEN _ ' KG022701
ZFileName$ = ZHelpPath$ + "MR" + ZHelpExtension$ : _
GOSUB 1790 : _
GOTO 4390
MsgIndex = 0 ' KG022701
NumMsgsSelected = ZWasQ
GOTO 4370
4416 IF INSTR("Mm",ZUserIn$(ZAnsIndex)) THEN _
AddressedToUser = ZTrue : _
GOTO 4370
ZWasA = INSTR("FfTt",ZUserIn$(ZAnsIndex))
IF ZWasA > 0 THEN _
ToRequested = (ZWasA > 2) : _
FromRequested = (ZWasA < 3) : _
GOTO 4370
IF CurMsg = 0 THEN _
IF SearchHeader$ <> "" THEN _
GOTO 4370 _
ELSE SearchString$ = ZUserIn$(ZAnsIndex) : _ ' KG022701
CALL AllCaps (SearchString$) : _
CALL Remove (SearchString$,CHR$(34) + CHR$(39)) : _
SearchHeader$ = SearchString$ : _
SubInHeader$ = SearchHeader$ : _
GOTO 4370
CALL SkipLine (1)
------------------------[ RH022501 ]-------------------------
Problem: in autodownload, the name displayed to the user is wrong
when default extension is added by rbbs.
Change RBBS-PC.BAS as follows:
20247 ZWasDF = 0
CALL BreakFileName (ZFileName$,DR$,WasX$,Extension$,ZFalse)
IF ZAutoDownInProgress THEN _
ZUserIn$(ZAnsIndex) = WasX$ + "." + Extension$ : _ ' RH022501
ZOutTxt$ = "Transferring -- " + _
ZUserIn$(ZAnsIndex) : _ ' RH022501
GOSUB 21640 : _
IF ZFileSysParm > 1 THEN _
RETURN
IF INSTR("...WRK.FW .ARC.EXE.COM.OBJ.WKS.LBR.ZIP.PAK.ZOO.LZH.","."+Extension$+".") > 2 OR _
MID$(Extension$,2,1) = "Q" OR _
(ZRequireNonASCII AND Extension$ = "BAS") THEN _
ZWasDF = ZTrue
------------------------[ KG022301 ]-------------------------
Problem: no way to trigger macro processing for on-line files.
Either not found or macro. Now can have both.
Solution: Add the following variable to RBBS-VAR.BAS: ZFileLocations$
Change RBBSSUB4.BAS as follows:
(line 58700)
SUB RotorsDir (FilName$,SDirAra$(1),MaxSearch,MarkingTime,PassToMacro$) STATIC ' KG022204
ZOK = ZFalse
ZDotFlag = ZFalse
IF MarkingTime THEN _
CALL QuickTPut ("Searching for "+FilName$,0)
IF ZMenuIndex = 6 THEN _
GOTO 58705
NumSearch = 1
WasX = 0
WHILE (NOT ZOK) AND NumSearch <= MaxSearch AND _
SDirAra$(NumSearch) <> ""
IF MarkingTime THEN _
CALL MarkTime (WasX)
WasX$ = SDirAra$(NumSearch) + _
FilName$
CALL FindFile (WasX$,ZOK)
NumSearch = NumSearch + 1
WEND
IF ZOK OR NOT ZFastFileSearch THEN _ ' KG022301
GOTO 58710 ' KG022301
CALL OpenRSeq (ZFastFileList$,HighRec,WasX,18) ' KG022301
IF ZErrCode <> 0 THEN _ ' KG022301
GOTO 58710 ' KG022301
CALL TrimTrail (FilName$,".")
CALL BinSearch (FilName$,1,12,18,HighRec,RecFoundAt, RecFound$)
ZOK = (RecFoundAt > 0)
IF NOT ZOK THEN _ ' KG022301
GOTO 58710 ' KG022301
ZOK = ZFalse
CALL CheckInt (MID$(RecFound$,13,4))
IF ZTestedIntValue < 1 THEN _ ' KG022301
GOTO 58710 ' KG022301
CALL OpenRSeq (ZFastFileLocator$,HighRec,WasX,66)
IF ZErrCode <> 0 OR ZTestedIntValue > HighRec THEN _ ' KG022301
GOTO 58710 ' KG022301
FIELD 2, 66 AS LocatorRec$
GET 2, ZTestedIntValue
WasX$ = LEFT$(LocatorRec$,63)
CALL Trim (WasX$)
IF LEFT$(WasX$,2) = "M!" THEN _
ZOK = ZFalse : _ ' KG022301
ZGSRAra$(1) = PassToMacro$ : _ ' KG022204
WasX$ = RIGHT$(WasX$,LEN(WasX$)-2) : _ ' KG022204
CALL Trim (WasX$) : _ ' KG022204
ZFileLocation$ = "" : _ ' KG022301
CALL MacroExe (WasX$) : _ ' KG022204
IF ZFileLocation$ = "" THEN _ ' KG022301
ZOK = ZFalse : _ ' KG022204
GOTO 58711 _ ' KG022301
ELSE WasX$ = ZFileLocation$ ' KG022301
WasX$ = WasX$ + FilName$ ' KG022301
CALL FindFile (WasX$,ZOK) ' KG022301
GOTO 58710 ' KG022301
Change RBBSSUB5.BAS as follows:
63336 GOSUB 63395
IF NOT ZMacroActive THEN _
ZMacroEcho = ZTrue : _
EXIT SUB
IF LEN(ZOutTxt$) < 3 THEN _
GOTO 63398
WasX$ = RIGHT$(ZOutTxt$,LEN(ZOutTxt$)-3)
IF CompareVar > 0 THEN _
IF NOT CaseExecute THEN _
IF LEFT$(ZOutTxt$,3) = ZSmartTextCode$+"==" THEN _
GOTO 63370 _
ELSE IF LEFT$(ZOutTxt$,7) = ZSmartTextCode$ + "END ON" THEN _
CompareVar = 0 : _
GOTO 63336 _
ELSE GOTO 63336
IF LEFT$(ZOutTxt$,1) <> ZSmartTextCode$ THEN _
GOTO 63398
CALL CheckInt (MID$(ZOutTxt$,2))
IF ZErrCode > 0 THEN _
GOTO 63398
IF ZTestedIntValue > 0 AND ZTestedIntValue <= ZMaxWorkVar THEN _
ZOutTxt$ = WasX$ : _ ' Macro command ask
ZForceKeyboard = ZTrue : _
ZMacroSave = ZTestedIntValue : _
ZLinesPrinted = 1 : _
ZNonStop = (ZPageLength < 1) : _
EXIT SUB
ON (1+INSTR("*0*1*B*FWT>>STON==M!M@EYEN/*TK<<:=LVNVCVLO",MID$(ZOutTxt$,2,2)))\2 GOTO _ ' KG022301
63345, _ ' Display with no Carriage Return
63347, _ ' Display with Carriage Return
63340, _ ' Display Block
63348, _ ' Display File
63343, _ ' Wait # of seconds
63350, _ ' Append to file
63355, _ ' Stack
63360, _ ' Case
63370, _ ' Case Comparison
63375, _ ' Macro execute
63380, _ ' Macro Abort
63383, _ ' Macro Echo on
63385, _ ' Macro Echo off
63336, _ ' Macro Comment
63387, _ ' Turbo Key allowed
63390, _ ' Form read
63362, _ ' Assign value to work var
63363, _ ' LV list verify
63364, _ ' NV number verify
63364, _ ' CV character verify ' KG022301
63367 ' LO assign file location ' KG022301
GOTO 63398
63367 CALL TRIM (WasX$) ' KG022301
ZFileLocation$ = WasX$ ' KG022301
GOTO 63336 ' KG022301
------------------------[ KG022205 ]-------------------------
Problem: In arc view, if file invokes macro processing, the file
name was no longer correct when came back and reported file not
found.
20143 ZWasZ$ = ZUserIn$(ZAnsIndex)
WasZ$ = ZWasZ$ ' KG022205
CALL AllCaps (ZWasZ$)
CALL BreakFileName (ZWasZ$,Drive$,Prefix$,Ext$,ZFalse)
IF Ext$ = "" THEN _
Ext$ = ZDefaultExtension$ : _
ZWasZ$ = ZWasZ$ + "." + ZDefaultExtension$
ZFileNameHold$ = ZWasZ$
ZFileName$ = ZWasZ$
CALL BadFile (Prefix$,BadFileNameIndex)
ON BadFileNameIndex GOTO 20144,20146,20147
20146 ZWasZ$ = WasZ$ + _ ' KG022205
" not found!"
CALL UpdtCalr (ZWasZ$,2)
ZOutTxt$ = ZWasZ$ + _
" Type correct filename" + ZPressEnterExpert$
ZSubParm = 1
CALL TGet
IF ZSubParm = -1 OR ZWasQ = 0 THEN _
RETURN
ZUserIn$(ZAnsIndex) = ZUserIn$(1)
GOTO 20143
------------------------[ KG022204 ]-------------------------
Problem: SysOps off-line files might want to process differently
when get an upload, view, or download rather than execute macro
only on download.
Solution: pass D, V, or U to macro in first work variable so
can alter processing.
Change RBBSSUB2.BAS as follows:
20145 CALL RotorsDir (ZFileName$,ZSubDir$(),ZSubDirCount + (NOT ZSysop),ZTrue,"V") ' KG022204
IF ZOK THEN _
GOTO 20148
Change RBBSSUB4.BAS as follows:
(line 58700)
SUB RotorsDir (FilName$,SDirAra$(1),MaxSearch,MarkingTime,PassToMacro$) STATIC ' KG022204
ZOK = ZFalse
ZDotFlag = ZFalse
IF MarkingTime THEN _
CALL QuickTPut ("Searching for "+FilName$,0)
IF ZMenuIndex = 6 THEN _
GOTO 58705
NumSearch = 1
WasX = 0
WHILE (NOT ZOK) AND NumSearch <= MaxSearch AND _
SDirAra$(NumSearch) <> ""
IF MarkingTime THEN _
CALL MarkTime (WasX)
WasX$ = SDirAra$(NumSearch) + _
FilName$
CALL FindFile (WasX$,ZOK)
NumSearch = NumSearch + 1
WEND
IF ZOK OR NOT ZFastFileSearch THEN _ ' KG022301
GOTO 58710 ' KG022301
CALL OpenRSeq (ZFastFileList$,HighRec,WasX,18) ' KG022301
IF ZErrCode <> 0 THEN _ ' KG022301
GOTO 58710 ' KG022301
CALL TrimTrail (FilName$,".")
CALL BinSearch (FilName$,1,12,18,HighRec,RecFoundAt, RecFound$)
ZOK = (RecFoundAt > 0)
IF NOT ZOK THEN _ ' KG022301
GOTO 58710 ' KG022301
ZOK = ZFalse
CALL CheckInt (MID$(RecFound$,13,4))
IF ZTestedIntValue < 1 THEN _ ' KG022301
GOTO 58710 ' KG022301
CALL OpenRSeq (ZFastFileLocator$,HighRec,WasX,66)
IF ZErrCode <> 0 OR ZTestedIntValue > HighRec THEN _ ' KG022301
GOTO 58710 ' KG022301
FIELD 2, 66 AS LocatorRec$
GET 2, ZTestedIntValue
WasX$ = LEFT$(LocatorRec$,63)
CALL Trim (WasX$)
IF LEFT$(WasX$,2) = "M!" THEN _
ZOK = ZFalse : _ ' KG022301
ZGSRAra$(1) = PassToMacro$ : _ ' KG022204
WasX$ = RIGHT$(WasX$,LEN(WasX$)-2) : _ ' KG022204
CALL Trim (WasX$) : _ ' KG022204
ZFileLocation$ = "" : _ ' KG022301
CALL MacroExe (WasX$) : _ ' KG022204
IF ZFileLocation$ = "" THEN _ ' KG022301
ZOK = ZFalse : _ ' KG022204
GOTO 58711 _ ' KG022301
ELSE WasX$ = ZFileLocation$ ' KG022301
WasX$ = WasX$ + FilName$ ' KG022301
CALL FindFile (WasX$,ZOK) ' KG022301
GOTO 58710 ' KG022301
59336 ZUserIn$(WasI) = LEFT$(PartToPrint$,INSTR(PartToPrint$," ") - 1)
CALL FindFile (ZPersonalDrvPath$ + ZUserIn$(WasI),ZOK)
IF ZOK THEN _
ZUserIn$(WasI) = ZPersonalDrvPath$ + ZUserIn$(WasI) _
ELSE CALL RotorsDir (ZUserIn$(WasI),ZSubDir$(),ZSubDirCount + _
((ZUserSecLevel < ZMinSecToView) OR _
NOT ZCanDnldFromUp),ZTrue,"D") : _ ' KG022204
GOSUB 59338
RETURN
Change RBBSSUB5.BAS as follows:
20222 CALL RotorsDir (ZFileName$,ZSubDir$(),ZSubDirCount + _
((ZUserSecLevel < ZMinSecToView) OR _
NOT ZCanDnldFromUp),MarkingTime,"D") ' KG022204
20440 CALL RotorsDir (ZFileName$,ZSubDir$(),ZSubDirCount,ZTrue,"U") ' KG022204
------------------------[ KG022203 ]-------------------------
Problem: When locally viewing the distributed color graphics
door menu (MENU05C), the colors will bleed over to the right
side of the boundary of the menu. The display looks fine
remotely.
Solution: Replace MENU05C with the new one distributed in
the latest merge file.
------------------------[ KG022202 ]-------------------------
Problem: When installing RBBS-PC for the first time and use
the distributed def file RBBS-PC.DEF, the up and downloads do
not work properly unless RBBS-PC is installed in a subdirectory
called RBBS.
Solution: In CONFIG, change the subdirectory for uploads from
"C:\RBBS\FILES" to "C:FILES", and change the two subdirectories
available for downloading from "C:\RBBS\FILES" to "C:FILES" and
from "C:\RBBS\BULLETINS" to "C:BULLETINS".
These are changed in parameter 208.
------------------------[ KG022201 ]-------------------------
Problem: When doing a directory listing and V)iew archieve,
J)ump is no longer an option after listing resumes.
Solution: Change RBBSSUB3.BAS as follows:
58180 ZTurboKey = -ZTurboKeyUser
ZStackC = ZTrue
CALL AskMore (ExtraPrompt$, ZTrue, ZFalse,AbortIndex,ZFalse)
IF ZSubParm = -1 THEN _
GOTO 58183
IF ZNo THEN _
GOTO 58183
CALL AllCaps (ZUserIn$(1))
IF ZUserIn$(1) = "V" THEN _
ZLastIndex = ZWasQ : _
ZAnsIndex = 1 : _
CALL GetArc : _
ZJumpSupported = ZTrue : _ ' KG022201
ZWasA = UpldIndex : _
GOSUB 58185 : _
UpldIndex = ZWasA : _
GOTO 58180
IF ZUserIn$(1) = "D" THEN _
ZOutTxt$ = "Download what file(s)" : _
ZStackC = ZTrue : _
CALL PopCmdStack : _
IF ZWasQ = 0 THEN _
GOTO 58180
IF ZJumpSearching THEN _
PrevSearch$ = SearchFor$ : _
SearchFor$ = ZJumpTo$ _
ELSE SearchFor$ = SearchString$ : _
IF LEN(ZUserIn$(1)) > 1 THEN _
IF NOT ZYes AND CanDnld THEN _
CALL SkipLine (1) : _
DnldFlag = UpldIndex : _
ZLastIndex = ZWasQ : _
ZAnsIndex = 1 : _
EXIT SUB
IF ZNonStop THEN IF UpldIndex > 999 THEN _
IF (SearchDate$ = "" OR NOT ZExpertUser) THEN _
ZOutTxt$ = STR$(UpldIndex) + _
" lines left to search. Really go non-stop? (Y/[N])" : _
ZNoAdvance = ZTrue : _
ZTurboKey = -ZTurboKeyUser : _
ZSubParm = 1 : _
CALL TGet : _
CALL WipeLine (79) : _
ZNonStop = ZYes
FMSCheckPoint = 0
GOTO 58168
------------------------[ KG022103 ]-------------------------
Problem: LIT merges not assigned security right for new
users.
Solution: Replace the file INDEF.LIT by the new one in the lastest
fix file merges.
------------------------[ KG022102 ]-------------------------
Problem: LIT merge generates a compile error when SURVEY
metavariable is set to OFF.
Solution: Replace the file SURVEY.LIT by the new one in
the latest fix file merges.
------------------------[ KG022101 ]-------------------------
Problem: When door to external protocols, not correctly tracking
bytes downloaded. Caused by misspelled variable names.
Change RBBSSUB3.BAS as follows:
43070 ZActiveMessageFile$ = ZOrigMsgFile$
ZSubParm = 3
CALL FileLock
CALL OpenMsg
FIELD 1, 128 AS ZMsgRec$
GET 1,ZNodeRecIndex
IF ZGlobalSysop THEN _
MID$(ZMsgRec$,1,30) = "SYSOP" + SPACE$(25)
MID$(ZMsgRec$,40,2) = STR$(ZExitToDoors)
MID$(ZMsgRec$,42,2) = STR$(ZEightBit)
MID$(ZMsgRec$,44,2) = STR$(ZBPS)
MID$(ZMsgRec$,46,2) = STR$(ZUpperCase)
MID$(ZMsgRec$,48,5) = MKS$(ZNumDnldBytes!) + MID$(STR$(-ZBatchTransfer),2) ' KG022101
MID$(ZMsgRec$,53,2) = STR$(ZWasGR)
MID$(ZMsgRec$,55,2) = STR$(ZSysop)
MID$(ZMsgRec$,65,3) = CHR$(VAL(LEFT$(ZTimeLoggedOn$,2))) + _
CHR$(VAL(MID$(ZTimeLoggedOn$,4,2))) + _
CHR$(VAL(MID$(ZTimeLoggedOn$,7,2)))
MID$(ZMsgRec$,72,2) = STR$(ZPrivateDoor)
MID$(ZMsgRec$,74,1) = MID$(STR$(ZTransferFunction),2,1)
MID$(ZMsgRec$,75,1) = ZWasFT$
MID$(ZMsgRec$,113,2) = MKI$(CINT(ZTimeCredits!)/60)
MID$(ZMsgRec$,79,8) = LEFT$(ZDooredTo$+" ",8)
MID$(ZMsgRec$,91,2) = STR$(ZReliableMode)
CALL BreakFileName (ZCurPUI$,ZOutTxt$,ZUserIn$,ZWasZ$,ZFalse)
MID$(ZMsgRec$,93,8) = ZUserIn$ + SPACE$(8 - LEN(ZUserIn$))
MID$(ZMsgRec$,101,2) = STR$(ZLocalUser)
MID$(ZMsgRec$,103,2) = STR$(ZLocalUserMode)
ZConfName$ = LEFT$(ZConfName$,INSTR(ZConfName$ + " "," ") - 1)
MID$(ZMsgRec$,105,8) = ZConfName$ + SPACE$(8 - LEN(ZConfName$))
MID$(ZMsgRec$,115,1) = MID$(STR$(ZAutoLogoffReq),2,1)
MID$(ZMsgRec$,117,2) = STR$(ZMenuIndex)
MID$(ZMsgRec$,119,2) = LEFT$(DATE$,2)
MID$(ZMsgRec$,121,2) = MID$(DATE$,4,2)
MID$(ZMsgRec$,123,2) = RIGHT$(DATE$,2)
MID$(ZMsgRec$,125,2) = LEFT$(TIME$,2)
MID$(ZMsgRec$,127,2) = MID$(TIME$,4,2)
' *** Save additional parameters for door restoral
CALL OpenOutW (ZNodeWorkDrvPath$+"DRST"+ZNodeFileID$+".DEF")
CALL PrintWorkA (STR$(ZLimitMinsPerSession))
CLOSE 2
(line 44000)
SUB ReadProf STATIC
FIELD 1, 128 AS ZMsgRec$
GET 1,ZNodeRecIndex
ZReliableMode = VAL(MID$(ZMsgRec$,91,2))
MID$(ZMsgRec$,40,2) = "00"
ZEightBit = VAL(MID$(ZMsgRec$,42,2))
ZBPS = VAL(MID$(ZMsgRec$,44,2))
CALL CommInfo
ZBaudTest! = VAL(MID$(ZBaudRates$,(-5 * ZBPS),5))
ZUpperCase = VAL(MID$(ZMsgRec$,46,2))
ZNumDnldBytes! = CVS(MID$(ZMsgRec$,48,4)) ' KG022101
ZBatchTransfer = (MID$(ZMsgRec$,52,1) = "1")
ZWasGR = VAL(MID$(ZMsgRec$,53,2))
HourLoggedOn$ = RIGHT$("0"+MID$(STR$(ASC(MID$(ZMsgRec$,65,1))),2),2)
MinLoggedOn$ = RIGHT$("0"+MID$(STR$(ASC(MID$(ZMsgRec$,66,1))),2),2)
SecLoggedOn$ = RIGHT$("0"+MID$(STR$(ASC(MID$(ZMsgRec$,67,1))),2),2)
ZTimeLoggedOn$ = HourLoggedOn$ + _
":" + _
MinLoggedOn$ + _
":" + _
SecLoggedOn$
ZTransferFunction = VAL(MID$(ZMsgRec$,74,1))
ZWasFT$ = MID$(ZMsgRec$,75,1)
ZTimeCredits! = 60*CVI(MID$(ZMsgRec$,113,2))
ZDooredTo$ = MID$(ZMsgRec$,79,8)
CALL Trim (ZDooredTo$)
IF ZExitToDoors AND ZDooredTo$ <> "" THEN _
CALL OpenWork (2,ZDoorsDef$) : _
IF ZErrCode = 0 THEN _
CALL ReadParms (ZOutTxt$(),8,1) : _
WHILE ZErrCode = 0 AND ZOutTxt$(1) <> ZDooredTo$ : _
CALL ReadParms (ZOutTxt$(),8,1) : _
WEND : _
IF ZOutTxt$(1) = ZDooredTo$ THEN _
ZDoorSkipsPswd = (ZOutTxt$(6) <> "Y") : _
CALL BufFile (ZOutTxt$(7),WasX)
ZErrCode = 0
ZMenuIndex = VAL(MID$(ZMsgRec$,117,2))
ZCurPUI$ = MID$(ZMsgRec$,93,8)
CALL Remove (ZCurPUI$," ")
IF ZCurPUI$ <> "" THEN _
CALL BreakFileName (ZMainPUI$,ZOutTxt$,ZUserIn$,ZWasZ$,ZTrue) : _
ZCurPUI$ = ZOutTxt$ + ZCurPUI$ + ZWasZ$
ZCustomPUI = (ZCurPUI$ <> "")
ZLocalUser = VAL(MID$(ZMsgRec$,101,2))
ZLocalUserMode = VAL(MID$(ZMsgRec$,103,2))
ZHomeConf$ = MID$(ZMsgRec$,105,8)
ZAutoLogoffReq = (VAL(MID$(ZMsgRec$,115,1)) <> 0)
CALL Trim (ZHomeConf$)
IF ZRequiredRings > 0 AND _
INSTR(ZModemInitCmd$,"S0=255") THEN _
COLOR 7,0,0 _
ELSE COLOR ZFG,ZBG,ZBorder
IF ZLocalUserMode THEN _
GOTO 44003
CALL SetBaud
------------------------[ KG022001 ]-------------------------
Problem: When using autodownload and do not specify an extension,
and default is appended, file name transmitted has no extension.
Solution: Change RBBSSUB5.BAS as follows:
20247 ZWasDF = 0
CALL BreakFileName (ZFileName$,DR$,WasX$,Extension$,ZFalse)
IF ZAutoDownInProgress THEN _
ZOutTxt$ = "Transferring -- " + _
WasX$ + "." + Extension$ : _ ' KG022001
GOSUB 21640 : _
IF ZFileSysParm > 1 THEN _
RETURN
IF INSTR("...WRK.FW .ARC.EXE.COM.OBJ.WKS.LBR.ZIP.PAK.ZOO.LZH.","."+Extension$+".") > 2 OR _
MID$(Extension$,2,1) = "Q" OR _
(ZRequireNonASCII AND Extension$ = "BAS") THEN _
ZWasDF = ZTrue
------------------------[ KG021803 ]-------------------------
Problem: In macro initialization of a variable, value includes the
variable number if a space separates the command and number. Should
not matter whether say "{:=1" or "{:= 1", for example.
Solution: Change RBBSSUB5.BAS as follows:
63362 CALL Trim (WasX$) ' KG021803
CALL CheckInt (WasX$)
WasX = INSTR(WasX$," ")
IF WasX > 0 AND ZTestedIntValue > 0 AND ZTestedIntValue <= ZMaxWorkVar THEN _
ZGSRAra$(ZTestedIntValue) = RIGHT$(WasX$,LEN(WasX$)-WasX) ' KG021803
GOTO 63336
------------------------[ KG021802 ]-------------------------
Problem: When implement macros in the Fast File System, the macros
are executed on more than download requests - including uploads and
file v)iew archive.
Change RBBSSUB2.BAS as follows:
20145 CALL RotorsDir (ZFileName$,ZSubDir$(),ZSubDirCount + (NOT ZSysop),ZTrue,ZFalse) ' KG021802
IF ZOK THEN _
GOTO 20148
Change RBBSSUB4.BAS as follows:
(line 58700)
SUB RotorsDir (FilName$,SDirAra$(1),MaxSearch,MarkingTime,DoMacro) STATIC ' KG021802
ZOK = ZFalse
ZDotFlag = ZFalse
IF MarkingTime THEN _
CALL QuickTPut ("Searching for "+FilName$,0)
IF ZMenuIndex = 6 THEN _
GOTO 58705
NumSearch = 1
WasX = 0
WHILE (NOT ZOK) AND NumSearch <= MaxSearch AND _
SDirAra$(NumSearch) <> ""
IF MarkingTime THEN _
CALL MarkTime (WasX)
WasX$ = SDirAra$(NumSearch) + _
FilName$
CALL FindFile (WasX$,ZOK)
NumSearch = NumSearch + 1
WEND
IF ZFastFileSearch AND NOT ZOK THEN _
CALL OpenRSeq (ZFastFileList$,HighRec,WasX,18) : _
IF ZErrCode = 0 THEN _
CALL TrimTrail (FilName$,".") : _
CALL BinSearch (FilName$,1,12,18,HighRec,RecFoundAt, RecFound$) : _
ZOK = (RecFoundAt > 0) : _
IF ZOK THEN _
ZOK = ZFalse : _
CALL CheckInt (MID$(RecFound$,13,4)) : _
IF ZTestedIntValue > 0 THEN _
CALL OpenRSeq (ZFastFileLocator$,HighRec,WasX,66) : _
IF ZErrCode = 0 AND ZTestedIntValue <= HighRec THEN _
FIELD 2, 66 AS LocatorRec$ : _
GET 2, ZTestedIntValue : _
WasX$ = LEFT$(LocatorRec$,63) : _
CALL Trim (WasX$) : _
IF LEFT$(WasX$,2) = "M!" THEN _
ZOK = ZFalse : _ ' KG021802
ZDotFlag = ZTrue : _ ' KG021802
IF DoMacro THEN _ ' KG021802
WasX$ = RIGHT$(WasX$,LEN(WasX$)-2) : _
CALL Trim (WasX$) : _
CALL MacroExe (WasX$) : _
ZOK = ZFalse : _ ' KG021802
GOTO 58711 _ ' KG021802
ELSE GOTO 58711 _ ' KG021802
ELSE WasX$ = WasX$ + FilName$ : _
CALL FindFile (WasX$,ZOK)
GOTO 58710
58711 CALL SkipLine (-MarkingTime) ' KG021802
END SUB
59336 ZUserIn$(WasI) = LEFT$(PartToPrint$,INSTR(PartToPrint$," ") - 1)
CALL FindFile (ZPersonalDrvPath$ + ZUserIn$(WasI),ZOK)
IF ZOK THEN _
ZUserIn$(WasI) = ZPersonalDrvPath$ + ZUserIn$(WasI) _
ELSE CALL RotorsDir (ZUserIn$(WasI),ZSubDir$(),ZSubDirCount + _
((ZUserSecLevel < ZMinSecToView) OR _
NOT ZCanDnldFromUp),ZTrue,ZFalse) : _ ' KG021802
GOSUB 59338
RETURN
Change RBBSSUB5.BAS as follows:
20222 CALL RotorsDir (ZFileName$,ZSubDir$(),ZSubDirCount + _
((ZUserSecLevel < ZMinSecToView) OR _
NOT ZCanDnldFromUp),MarkingTime,ZTrue) ' KG021802
20440 CALL RotorsDir (ZFileName$,ZSubDir$(),ZSubDirCount,ZTrue,ZFalse) ' KG021802
20450 IF Extension$ <> Check$ THEN _
CALL RotorsDir (WasX$ + "." + Check$,ZSubDir$(),ZSubDirCount,ZTrue,ZFalse) : _ ' KG021802
IF ZOK THEN _
GOTO 20452
GOTO 20447
------------------------[ KG021801 ]-------------------------
Problem: internal code documentation for SmartText omits notes
on what command invokes processing.
Change RBBSSUB4.BAS as follows:
58266 SmartHold$ = DATE$ ' DT Date ' KG021801
RETURN
58267 CALL AMorPM
SmartHold$ = ZTime$ ' TM Time ' KG021801
RETURN
------------------------[ KG021502 ]-------------------------
Problem: When restrict a macro to the main prompt, and have a macro
with same name as a conference (to join it), "j <conf>" works but
"fn;ln;pswd;!<conf>" does not. The macro gets substituted for
"<conf>".
Solution: Change RBBS-PC.BAS as follows:
1205 IF ZSubParm < 0 THEN _
GOTO 202
ZSubParm = 1
ZStopInterrupts = ZFalse
ZNonStop = (ZPageLength < 1)
ZWasQ = 0
IF ZHomeConf$ <> "" AND ZHomeConf$ <> "MAIN" THEN _
TurboLogon = (NOT ConfMailJoin) : _
ConfMailJoin = ZFalse : _
ZFF = 8 : _
ZUserIn$(2) = ZHomeConf$ : _
ZHomeConf$ = "" : _
ZWasQ = 1 : _
ZAnsIndex = 1 : _
ZLastIndex = 2 : _
ZStoreParseAt = 1 : _
ZLastCommand$ = "MJ" : _ ' KG021502
GOTO 1240
CALL SkipLine (1)
------------------------[ KG021502 ]-------------------------
Problem: the prompt after a macro ends is repeated twice.
Solution: Change RBBSSUB2.BAS as follows:
1628 CALL VerifyAns
IF NOT ZOK THEN _
CALL QuickTPut1 ("Invalid answer <" + ZUserIn$(1) + ">") : _
GOTO 1500
HoldA$ = ""
ZForceKeyboard = ZFalse
IF ZMacroSave > 0 THEN _
ZGSRAra$(ZMacroSave) = ZUserIn$ : _
ZMacroSave = 0 : _
GOTO 1632
IF (ZDistantTGet > 0) OR (ZMacroTemplate$ <> "") THEN _
CALL WipeLine (38) : _
IF NOT ZNo THEN _
GOTO 1632 _
ELSE ZWasQ = 0 : _
ZMacroTemplate$ = "" : _
ZDistantTGet = 0 : _
ZNo = ZFalse : _
GOTO 1633
IF ZMacroActive THEN _
ZLastIndex = ZWasQ : _
FirstIndex = 1: _
ZMacroActive = NOT EOF(6) : _ ' KG021501
EXIT SUB
IF ZAnsIndex > 255 OR ((NOT InStack) AND INSTR(ZUserIn$,".") > 0) THEN _
EXIT SUB
IF MacroIndex THEN _
MacroIndex = 1 _
ELSE MacroIndex = ZAnsIndex
CALL NoPath (ZUserIn$(MacroIndex),Found)
IF Found THEN _
EXIT SUB
CALL CheckMacro (ZUserIn$(MacroIndex),Found)
IF Found THEN _
ZStoreParseAt = ZAnsIndex : _
GOTO 1525
EXIT SUB
------------------------[ RH021501 ]-------------------------
Problem: autodownload just does not work.
Solution: Change RBBSSUB3.BAS as follows:
20296 CALL FlushCom(ZWasY$) ' CLEAR THE COMM BUFFER OF GARBAGE
IF ZSubParm = -1 THEN _
EXIT SUB
CALL PutCom (ZEscape$+"OD") ' SEND "ALERT" STRING
IF ZSubParm = -1 THEN _
EXIT SUB
IF ZAbort = ZTrue THEN _
GOTO 20306
CALL LPrnt("Sending FILENAME -- ",1)
CALL LPrnt(ZReturnLineFeed$ + CHR$(9),0)
CALL DelayTime (1) ' WAIT 1 SECOND FOR SETUP
'
' SEND ONE CHARACTER AT A TIME
'
CALL BreakFileName (ZUserIn$(ZAnsIndex),WasX$,ZOutTxt$,ZWasY$,ZTrue) ' RH021501
ZOutTxt$ = ZOutTxt$ + ZWasY$ + "=X" ' RH021501
FOR WasX = 1 TO LEN(ZOutTxt$)
CALL PutCom (MID$(ZOutTxt$,WasX,1)) ' SEND 1 CHARACTER
IF ZSubParm = -1 THEN _
EXIT SUB
IF ZAbort = ZTrue THEN _
GOTO 20306
CALL LPrnt(MID$(ZOutTxt$,WasX,1),0) ' DISPLAY IF NEEDED
ZDelay! = TIMER + 10 ' SET MAXIMUM TIME TO WAIT FOR Reply
Char = ZTrue
WHILE Char = -1
CALL CheckTime(ZDelay!, TempElapsed!, 1)
IF TempElapsed! <= 0 THEN _
GOTO 20300 ' IF ZNo ECHO, CANCEL FILENAME Transfer
CALL EofComm (Char)
WEND ' JUMP OUT IF CHARACTER IS RECEIVED
Change RBBSSUB4.BAS as follows:
(line 59400)
SUB LogPDown (PrivateDnld,DwnIndex) STATIC ' RH021501
IF NOT PrivateDnld THEN _
EXIT SUB
ZWasEN$ = ZPersonalDir$
WasBX = &H4
ZSubParm = 9
CALL FileLock
WasL = 36 + ZMaxDescLen + ZPersonalLen
CLOSE 2
IF ZShareIt THEN _
OPEN ZWasEN$ FOR RANDOM SHARED AS #2 LEN=WasL _
ELSE OPEN "R",2,ZPersonalDir$,WasL
FIELD #2,WasL AS PersonalRec$
ZWasA = VAL(MID$(ZUserIn$(0),5 * (DwnIndex - 1) + 1,5)) ' RH021501
GET #2,ZWasA
MID$(PersonalRec$,WasL-2,1) = "!"
PUT #2,ZWasA
CALL UnLockAppend
END SUB
Change RBBSSUB3.BAS as follows:
20296 CALL FlushCom(ZWasY$) ' CLEAR THE COMM BUFFER OF GARBAGE
IF ZSubParm = -1 THEN _
EXIT SUB
CALL PutCom (ZEscape$+"OD") ' SEND "ALERT" STRING
IF ZSubParm = -1 THEN _
EXIT SUB
IF ZAbort = ZTrue THEN _
GOTO 20306
CALL LPrnt("Sending FILENAME -- ",1)
CALL LPrnt(ZReturnLineFeed$ + CHR$(9),0)
CALL DelayTime (1) ' WAIT 1 SECOND FOR SETUP
'
' SEND ONE CHARACTER AT A TIME
'
CALL BreakFileName (ZUserIn$(ZAnsIndex),WasX$,ZOutTxt$,ZWasY$,ZTrue) ' RH021501
ZOutTxt$ = ZOutTxt$ + ZWasY$ + "=X" ' RH021501
FOR WasX = 1 TO LEN(ZOutTxt$)
CALL PutCom (MID$(ZOutTxt$,WasX,1)) ' SEND 1 CHARACTER
IF ZSubParm = -1 THEN _
EXIT SUB
IF ZAbort = ZTrue THEN _
GOTO 20306
CALL LPrnt(MID$(ZOutTxt$,WasX,1),0) ' DISPLAY IF NEEDED
ZDelay! = TIMER + 10 ' SET MAXIMUM TIME TO WAIT FOR Reply
Char = ZTrue
WHILE Char = -1
CALL CheckTime(ZDelay!, TempElapsed!, 1)
IF TempElapsed! <= 0 THEN _
GOTO 20300 ' IF ZNo ECHO, CANCEL FILENAME Transfer
CALL EofComm (Char)
WEND ' JUMP OUT IF CHARACTER IS RECEIVED